/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sueca2011;

import java.rmi.RemoteException;

/**
 *
 * @author hugo
 */
public class Nivel0 extends IA{
    protected Jogada mesaRodada[];
    protected int posRodada;
    protected int pontosRodada;

    public Nivel0(String nome) throws RemoteException{
        this(nome,0);
    }

    protected Nivel0(String nome,int tamMemoria) throws RemoteException{
        super(nome,tamMemoria);
        pontosRodada=0;
    }

    protected boolean validaCarta(Carta carta) throws RemoteException{
        if(this.posRodada>0){
            if(carta.getNipe()==this.mesaRodada[0].getCartaJogada().getNipe())
                return true;
            else
                return !temCartaComPuxada(this.mesaRodada[0].getCartaJogada().getNipe());
        }else
            return true;
    }

    protected int comparaCartas(Carta a, Carta b){
        if(posRodada>0)
            return a.compareTo(trunfo.getNipe(), mesaRodada[0].getCartaJogada().getNipe(), mesaRodada[0].getCartaJogada());
        else{
            if(Jogo.valorCarta(a)>Jogo.valorCarta(b))
                return 1;
            else if(Jogo.valorCarta(a)<Jogo.valorCarta(b))
                return -1;
            else
                return 0;
        }

    }

    public synchronized void escolheJogada() throws RemoteException{

        this.jogadaAtual = new Jogada(this, getCartasValidas().get((int)Math.floor(Math.random()*this.getCartasValidas().size())));
        System.out.println("Carta escolhida pelo nivel 0: "+this.jogadaAtual.getCartaJogada());
        notifyAll();
    }

    @Override
    protected void novaRodada() {
        pontosRodada=0;
        posRodada = 0;
        mesaRodada = new Jogada[4];
    }

    @Override
    protected void novoJogo() {

    }

    @Override
    protected void novaJogada(Jogada jogada) {
        pontosRodada+=Jogo.valorCarta(jogada.getCartaJogada());
        mesaRodada[posRodada++] = jogada;
    }
}
